package com.shy.model;

import java.util.List;

/**
 * Page类, 用来封装分页信息
 */
public class Page {

    // 默认页码 每页记录数 导航页码数量
    public static final int DEFAULT_PAGE_NO = 1;
    public static final int DEFAULT_PAGE_SIZE = 5;
    public static final int DEFAULT_NAV_SIZE = 5;

    private int pageNo = DEFAULT_PAGE_NO; // 分页的当前页码
    private int pageSize = DEFAULT_PAGE_SIZE; // 每页的记录数
    private int navSize = DEFAULT_NAV_SIZE; // 导航页码数量
    private int totalRows; // 记录总数
    private List datalist; // 当前页对应的数据列表

    // 获取分页的总页数
    public int getTotalPages() {
        return totalRows / pageSize + (totalRows % pageSize == 0 ? 0 : 1);
    }
    // 下一页
    public int getNextPage() {
        return pageNo >= getTotalPages() ? getTotalPages() : pageNo + 1;
    }
    // 上一页
    public int getPreviousPage() {
        return pageNo <= 1 ? 1 : pageNo - 1;
    }

    public Page() {
    }

    public Page(int pageNo, int totalRows, List datalist) {
        this.pageNo = pageNo;
        this.totalRows = totalRows;
        this.datalist = datalist;
    }

    public Page(int pageNo, int totalRows, List datalist, int pageSize, int navSize) {
        this.pageNo = pageNo;
        this.totalRows = totalRows;
        this.datalist = datalist;
        this.pageSize = pageSize;
        this.navSize = navSize;
    }

    public int getPageNo() {
        return pageNo;
    }

    public int getTotalRows() {
        return totalRows;
    }

    public List getDatalist() {
        return datalist;
    }

    public int getPageSize() {
        return pageSize;
    }

    public int getNavSize() {
        return navSize;
    }
}
